#!/bin/bash

# BoulderAI MCP Client 大模型集成版本启动脚本
# 用于快速启动应用并提供使用指导

echo "=== BoulderAI MCP Client - 大模型集成版本 ==="
echo "正在启动应用..."
echo ""

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 检查Java环境
if ! command -v java &> /dev/null; then
    echo -e "${RED}错误: 未找到Java环境，请先安装Java 11或更高版本${NC}"
    exit 1
fi

# 检查Maven环境
if ! command -v mvn &> /dev/null; then
    echo -e "${RED}错误: 未找到Maven环境，请先安装Maven${NC}"
    exit 1
fi

# 显示环境信息
echo -e "${BLUE}环境信息:${NC}"
echo "Java版本: $(java -version 2>&1 | head -n 1)"
echo "Maven版本: $(mvn -version 2>&1 | head -n 1)"
echo ""

# 检查配置
echo -e "${BLUE}配置检查:${NC}"
if [ -n "$OPENAI_API_KEY" ]; then
    echo -e "${GREEN}✓ OpenAI API密钥已设置${NC}"
else
    echo -e "${YELLOW}⚠ OpenAI API密钥未设置，部分功能将无法使用${NC}"
    echo "  设置方法: export OPENAI_API_KEY='your-api-key'"
fi

if [ -n "$CLAUDE_API_KEY" ]; then
    echo -e "${GREEN}✓ Claude API密钥已设置${NC}"
else
    echo -e "${YELLOW}⚠ Claude API密钥未设置（可选）${NC}"
    echo "  设置方法: export CLAUDE_API_KEY='your-api-key'"
fi
echo ""

# 编译项目
echo -e "${BLUE}编译项目...${NC}"
if mvn clean compile -q; then
    echo -e "${GREEN}✓ 编译成功${NC}"
else
    echo -e "${RED}✗ 编译失败，请检查代码${NC}"
    exit 1
fi
echo ""

# 启动应用
echo -e "${BLUE}启动应用...${NC}"
echo "应用将在 http://localhost:8080 启动"
echo "按 Ctrl+C 停止应用"
echo ""
echo -e "${YELLOW}可用的API端点:${NC}"
echo "  健康检查: GET /actuator/health"
echo "  大模型对话: POST /api/llm/chat/{sessionId}"
echo "  流式对话: POST /api/llm/chat/{sessionId}/stream"
echo "  客户端类型: GET /api/llm/clients"
echo "  模型列表: GET /api/llm/clients/{type}/models"
echo "  MCP连接: POST /api/mcp/connect"
echo ""
echo -e "${YELLOW}测试脚本:${NC}"
echo "  运行 ./test-llm-integration.sh 进行功能测试"
echo ""
echo -e "${YELLOW}文档:${NC}"
echo "  详细使用说明请参考 README-LLM-INTEGRATION.md"
echo ""
echo "正在启动..."
echo "==========================================="

# 启动Spring Boot应用
mvn spring-boot:run